package com.example.housingRentalSystem.service;

import com.example.housingRentalSystem.bean.News;
import com.example.housingRentalSystem.utils.ApiResponse;
import com.example.housingRentalSystem.utils.PageRequest;
import com.example.housingRentalSystem.utils.PageResponse;

import java.util.Optional;

/**
 * @author 王硕
 * @version jdk21
 * @className NewsService
 * @description 新闻服务接口
 * @date 2025/3/24 16:13
 */
public interface NewsService {
    /**
     * 获取新闻列表
     *
     * @param pageRequest 分页请求对象
     * @return 分页响应对象
     */
    PageResponse<News> getList(PageRequest pageRequest);

    /**
     * 根据ID获取新闻详情
     *
     * @param id 新闻ID
     * @return 新闻对象（如果存在）
     */
    Optional<News> getDetail(Integer id);

    /**
     * 添加新闻
     *
     * @param news 新闻对象
     */
    void addNews(News news);

    /**
     * 更新新闻
     *
     * @param id   新闻ID
     * @param news 新闻对象
     */
    void updateNews(Integer id, News news);

    /**
     * 删除新闻
     *
     * @param id 新闻ID
     */
    void deleteNews(Integer id);
    int selectCountNews();
}